Finally, a way to run JS in the browser! /s Seriously though, this was really amazing to see, I'm learning Rust now and the possibilities like this fuel me.
Deno embeds the typescript package (sort of) to transpile the code in the fly (sort of - caching etc...). Possibly good enough, but it has its own issues. Ideally the parser could be updated to simply skip typing related tokens, which would simplify a lot of current dev workflow nonsense, with the assumption that you're independently checking the types, so similar to the current Babel typescript workflow. I've been considering the issues related with this (and there are several!) while thinking about putting together a proposal, but I suspect that interest at least initially from TC39 would be pretty low, for a bunch of reasons: technical, philosophical and political (don't forget Flow exists....)
Already exists, created by the guy who made Node: Deno. Written in Rust as well. Surprised to see this video when something like this is already being done.
@@matthewburson2908 There's some gotchas with deno, first of all it uses V8 and other dependencies, yes for sure you can run js and ts out of the box, but the issue (at least for me) is that it still uses C++ (iirc v8 is written in C++), so you still have the possible memory issues (highly unlikely because all the engineers working on it, but still), I think what OP wanted (or I can say I want) is a lightweight typescript runtime/engine, it can be done easly in pure rust, but what will take time is build all those optimizations made in the well known js engines. So a quick recap, deno still uses C++ and isn't pure rust, using pure rust give you the advantage of having one tool to build in all platforms, I find annoying that you cannot use easly the same c/c++ compiler in all platforms and having different build tools make harder to integrate each other, you need to build more complex build pipelines, etc. Yes this is a bit of my rant :)
It is being worked on as of today, but still requires lots of work in order to fully comply to the TC39 spec. If you're interested in contributing, please check it out! You can find it out at github.com/boa-dev/boa/
I hope Rust takes over the world (no pun intended) so that memory management and the vulnerabilities that often result from it, are a thing of the past.
@@perc-ai Unlikely. Go isn't even a "better C". It is easy to learn for a C programmer, but it lacks the feature-completeness of a programming language. C, C++ and Rust don't require dynamic GC, yet Go does. Most typed languages have some kind of Generic Programming -(it is possible in even C thanks to type-cast)- but not Go. Go was designed to do one thing and good at that one thing only. It lacks the quality necessary to take over the industry.
I’m that one weirdo that actually wonders how this stuff is built. I may build my own engine actually. But, I’ll make it run on TypeScript instead. Maybe I can make it so we can run TypeScript on the browser without transpiring to JS. Lol. Idk. All I know is I wanna build my own engine and/or my own language.
if your name is json you have to write a js engine
Haha! Very funny. 👏👏👏
😂
lol😂
haha, i love you funny bastard
That's like the best comment ever😂
Q: So what do you do for a living?
A: coding
Q: So what do you after work?
A: coding
This is exactly how my conversation went with someone from the business team, lol
Finally, a way to run JS in the browser! /s
Seriously though, this was really amazing to see, I'm learning Rust now and the possibilities like this fuel me.
This was a very good presentation; very good display of Rust's capabilities!
Functions declared in the outside scope with the function keyword are generally parsed/compiled immediately, not only once they are run.
I would love to have a runtime/engine that runs Typescript natively
That would absolutely make no sense 🤔
Deno embeds the typescript package (sort of) to transpile the code in the fly (sort of - caching etc...). Possibly good enough, but it has its own issues.
Ideally the parser could be updated to simply skip typing related tokens, which would simplify a lot of current dev workflow nonsense, with the assumption that you're independently checking the types, so similar to the current Babel typescript workflow.
I've been considering the issues related with this (and there are several!) while thinking about putting together a proposal, but I suspect that interest at least initially from TC39 would be pretty low, for a bunch of reasons: technical, philosophical and political (don't forget Flow exists....)
@@geeksy2278 Why not? Node origin creator is working on deno, which is secure typescript engine (which is written in Rust btw).
Already exists, created by the guy who made Node: Deno. Written in Rust as well. Surprised to see this video when something like this is already being done.
@@matthewburson2908 There's some gotchas with deno, first of all it uses V8 and other dependencies, yes for sure you can run js and ts out of the box, but the issue (at least for me) is that it still uses C++ (iirc v8 is written in C++), so you still have the possible memory issues (highly unlikely because all the engineers working on it, but still), I think what OP wanted (or I can say I want) is a lightweight typescript runtime/engine, it can be done easly in pure rust, but what will take time is build all those optimizations made in the well known js engines.
So a quick recap, deno still uses C++ and isn't pure rust, using pure rust give you the advantage of having one tool to build in all platforms, I find annoying that you cannot use easly the same c/c++ compiler in all platforms and having different build tools make harder to integrate each other, you need to build more complex build pipelines, etc.
Yes this is a bit of my rant :)
Cool project, well done!
Revolutionary concept
github.com/denoland/deno
When you started the talk I started thinking about that final demo. And you made it. Is it an updatable JS engine? Future is beautiful.
It is being worked on as of today, but still requires lots of work in order to fully comply to the TC39 spec. If you're interested in contributing, please check it out! You can find it out at github.com/boa-dev/boa/
Great and inspiring talk!
Bro, are you amazing) I have making js runtime, but on c++) I was started it just like hobby. Rust is exotic thing for me)
I hope Rust takes over the world (no pun intended) so that memory management and the vulnerabilities that often result from it, are a thing of the past.
nope I hope Golang takes over the world
@@perc-ai I hope both Rust and Golang take over the world.
@@perc-ai Unlikely. Go isn't even a "better C". It is easy to learn for a C programmer, but it lacks the feature-completeness of a programming language. C, C++ and Rust don't require dynamic GC, yet Go does. Most typed languages have some kind of Generic Programming -(it is possible in even C thanks to type-cast)- but not Go. Go was designed to do one thing and good at that one thing only. It lacks the quality necessary to take over the industry.
@@khai96x I always found the "better C++" claim of go hilarious, given that it has basically nothing in common with it other than curly braces!
@@perc-ai golang is an under-featured language imo
Rust it is!
That's so exciting! Thanks for this talk!
What would be the difference in using the Gc that you have vs just a Rc from std? Is there a real benefit?
super interesting presentation, thank you!
Really awesome
aw Super coool, great presentation !!
So his name is Json Williams? ;-)
What is the name of the theme of his vscode dough. Is beautiful hahaha
what is vs code theme he using?
That’s the tal question here hahaha
can anybody confirm ?
he just translated that js code into rust code ?
thats it ?
let conf = 'RustConf Eu'
Neat
I know some of those words
Awesome!
Now know as 'BUN" , lol
why stop there, thinking of building an interpreter(engine) for python, scala, f#, sql
I love JS and Python 3! And im a IT Professional....
Software Engineer Soon!
I’m that one weirdo that actually wonders how this stuff is built. I may build my own engine actually. But, I’ll make it run on TypeScript instead. Maybe I can make it so we can run TypeScript on the browser without transpiring to JS. Lol. Idk. All I know is I wanna build my own engine and/or my own language.
deno already works with typescript natively
So if you're a rust programmer, you can no longer get away with saying you're rusty.
can't find this guy on twitter what the heck
twitter.com/jason_williams , no problem :-)
Its a nixe talk learnt a lot but my god is your choice of theme trash 😢